//using System.Collections.Generic;
//using System.Collections.ObjectModel;
//using System.Collections.Specialized;


//namespace Might.Infrastructure.DOM
//{
//    public interface IDomNodeCollection<T> : IList<T>, INotifyCollectionChanged
//    {

//    }

//    public class DomNodeCollection : ObservableCollection<IDomNode>, IDomNodeCollection { }

//    public interface IDomNode : INotifyChange
//    {

//        IDomNode Parent { get; set; }

//        bool IsContainer { get; }


//        //Dictionary<ConceptTypeEnum, ObservableCollection<IDomNode>>.ValueCollection GetChildren();

//        IDomNodeCollection<T> GetChildren<T>(string groupName);

//        IDomNodeCollection GetReferences(string groupName);

//        IDomNode GetFirstChild(string groupName);

//        void InsertChild(string groupName, IDomNode child);

//        /// <summary>
//        /// Removes all children.
//        /// </summary>
//        void RemoveChildren();

//        /// <summary>
//        /// Removes the children of specified children type.
//        /// </summary>
//        /// <param name="conceptName">Name of the concept.</param>
//        void RemoveChildren(string groupName);

//        /// <summary>
//        /// Removes the child.
//        /// </summary>
//        /// <param name="child">The child.</param>
//        void RemoveChild(string groupName, IDomNode child);


//        void StartUpdate();
//        void FinishUpdate();
//        void FinishUpdate(object exceptObj);
//    }

//}